/**
 * 流程节点服务
 * 提供流程节点相关的API接口
 */

import { get, post, put, del } from '../utils/request.js';

/**
 * 获取流程节点列表
 * @param {number|string} processId - 流程配置ID
 * @param {Object} [params] - 查询参数
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const getProcessNodes = (processId, params) => {
  return get(`/api/process-configs/${processId}/nodes`, params);
};

/**
 * 创建单个流程节点
 * @param {number|string} processId - 流程配置ID
 * @param {Object} data - 节点数据
 * @param {string} data.name - 节点名称
 * @param {string} data.type - 节点类型
 * @param {Object} data.config - 节点配置
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const createProcessNode = (processId, data) => {
  return post(`/api/process-configs/${processId}/nodes`, data);
};

/**
 * 批量创建流程节点
 * @param {number|string} processId - 流程配置ID
 * @param {Array} data - 节点数据数组
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const batchCreateProcessNodes = (processId, data) => {
  return post(`/api/process-configs/${processId}/nodes/batch`, data);
};

/**
 * 更新流程节点
 * @param {number|string} processId - 流程配置ID
 * @param {number|string} nodeId - 节点ID
 * @param {Object} data - 节点数据
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const updateProcessNode = (processId, nodeId, data) => {
  return put(`/api/process-configs/${processId}/nodes/${nodeId}`, data);
};

/**
 * 删除流程节点
 * @param {number|string} processId - 流程配置ID
 * @param {number|string} nodeId - 节点ID
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const deleteProcessNode = (processId, nodeId) => {
  return del(`/api/process-configs/${processId}/nodes/${nodeId}`);
};